*Replication Code for Analysis of Experiment Results


use "Data_Replication_HL24_IS_Experiment.dta", clear

*DV: support for Putin

recode qH5 (1=4) (2=3) (3=2) (4=1) (97=.) (99=.), gen(supputx4)
recode qH5 (1=1) (2=1) (3=0) (4=0) (97=0) (99=0), gen(supputx2)

*Treatment variables: binary variables for treatments coded 1 for the treatment in question and 0 for other treatments

recode qVAR_H5 (1=0) (2=1) (3=0) (4=0) (5=0), gen(irplacebo)
recode qVAR_H5 (1=0) (2=0) (3=1) (4=0) (5=0), gen(usthreat)
recode qVAR_H5 (1=0) (2=0) (3=0) (4=1) (5=0), gen(usthrput)
recode qVAR_H5 (1=0) (2=0) (3=0) (4=0) (5=1), gen(uscoopput)

*Variables for categories of treatments
recode qVAR_H5 (1=0) (2=0) (3=1) (4=1) (5=0), gen(usthreatall)
recode qVAR_H5 (1=0) (2=0) (3=0) (4=1) (5=1), gen(putall)
recode qVAR_H5 (1=0) (2=1) (3=1) (4=1) (5=1), gen(irall)


********************* DV = PUTIN SUPPORT

*Basic model for DV = Putin support: Table OA11

eststo clear
regress supputx2 irplacebo usthreat usthrput uscoopput
eststo: margins, dydx(*)
logit supputx2 irplacebo usthreat usthrput uscoopput
eststo: margins, dydx(*)
regress supputx4 irplacebo usthreat usthrput uscoopput
eststo: margins, dydx(*)
ologit supputx4 irplacebo usthreat usthrput uscoopput
eststo: margins, dydx(*)

esttab using FRexpbasic20230820.rtf, compress b(%9.2f) se star(* 0.05 ** 0.01) coeflabel(irplacebo "IR placebo" usthreat "US threat" usthrput "Putin: US threat" uscoopput "Putin: US cooperation") mtitles("OLS binary DV" "Logit binary DV" "OLS 4-pt scale" "Ologit 4-pt scale") title("Table X. Average marginal effect of primes on Putin support") addnote("Binary DV refers to dependent variable coded 1 for all affirming support for Putin and 0 for all others. 4-pt scale refers to dependent variable ranging from full lack of support for Putin, coded 1, to full support, coded 4, dropping observations with missing values (listwise deletion).") fonttbl(\f0\fnil Times New Roman; ) replace 

eststo clear

*Graph of the OLS results for the 4-pt scale: Figure OA10

reg supputx4 i.qVAR_H5
margins qVAR_H5
marginsplot, recast(bar) plotop(bc(dkorange)) ylabel(2.8 "2.8" 2.9 "2.9" 3.0 "3.0" 3.1 "3.1" 3.2 "3.2" 3.3 "3.3", angle(horizontal) labsize(medlarge)) xlabel(1 "Control" 2 "IR placebo" 3 "US threat" 4 "Putin: US threat" 5 "Putin: US cooperation", labsize(medsmall) angle(45)) title("Effect of Russia-US relations primes on Putin's support (OLS, 95% CI)") ytitle("Putin support (scale 1-4)") xtitle("") yscale(range(2.8 3.3)) graphr(color(white)) saving(test, replace)


*To confirm: the difference between the putin US cooperation and the putin US threat primes is insignificant: Table OA12

eststo clear

regress supputx2 usthrput if qVAR_H5==4 | qVAR_H5==5
eststo: margins, dydx(*)
logit supputx2 usthrput if qVAR_H5==4 | qVAR_H5==5
eststo: margins, dydx(*)
regress supputx4 usthrput if qVAR_H5==4 | qVAR_H5==5
eststo: margins, dydx(*)
ologit supputx4 usthrput if qVAR_H5==4 | qVAR_H5==5
eststo: margins, dydx(*)

esttab using FRexpputhrvspucoop20230820.rtf, compress b(%9.2f) se star(* 0.05 ** 0.01) coeflabel(usthrput "Putin: US threat") mtitles("OLS binary DV" "Logit binary DV" "OLS 4-pt scale" "Ologit 4-pt scale") title("Table X. Average marginal effect of Putin citing US threat relative to Putin citing need to cooperate with US") addnote("Binary DV refers to dependent variable coded 1 for all affirming support for Putin and 0 for all others. 4-pt scale refers to dependent variable ranging from full lack of support for Putin, coded 1, to full support, coded 4, dropping observations with missing values (listwise deletion).") fonttbl(\f0\fnil Times New Roman; ) replace 

eststo clear


********************** HETEROGENEOUS EFFECTS


*Pro-Putin priors: Figure 4

recode q2A (1=1) (2=0) (0=0), gen(appputx2)

* This reverses the coding of appput so that in the graphs, "Not" comes after "Pro-Putin":
recode appput (1=0) (0=1), gen(noappput)

regress supputx4 noappput##(irplacebo usthreat usthrput uscoopput)
margins, dydx(irplacebo) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("IR placebo", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffplaceboxappput20240603, replace)

regress supputx4 noappput##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthreat) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("U.S. threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrxappput20240603, replace)

regress supputx4 noappput##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthrput) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("Putin: U.S. threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrputxappput20240603, replace)

regress supputx4 noappput##(irplacebo usthreat usthrput uscoopput)
margins, dydx(uscoopput) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("Putin: U.S. cooperation", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffuscoopputxappput20240603, replace)

gr combine FRexpheteffusthrxappput20240603.gph FRexpheteffusthrputxappput20240603.gph FRexpheteffuscoopputxappput20240603.gph FRexpheteffplaceboxappput20240603.gph, col(4) iscale(1.3) ysize(2) xsize(6.5) title("Effect of primes on Putin support by Putin job approval priors versus control", size(huge)) graphr(color(white)) saving(FRexpheteffappput20240603, replace)


*Table OA13

eststo clear
regress supputx2 c.appput##(c.irplacebo c.usthreat c.usthrput c.uscoopput)
eststo: margins, dydx(*)
regress supputx4 c.appput##(c.irplacebo c.usthreat c.usthrput c.uscoopput)
eststo: margins, dydx(*)

esttab using FRtableOA13.rtf, compress b(%9.2f) se star(* 0.05 ** 0.01) coeflabel(appput "Pro-Putin priors" irplacebo "IR placebo" usthreat "US threat" usthrput "Putin: US threat" uscoopput "Putin: US cooperation" c.appput#c.irplacebo "IR placebo x Pro-Putin priors" c.appput#c.usthreat "US threat x Pro-Putin priors" c.appput#c.usthrput "Putin US threat x Pro-Putin priors" c.appput#c.uscoopput "Putin US cooperation x Pro-Putin priors") mtitles("OLS binary DV" "OLS 4-pt scale DV") title("Table OA13") fonttbl(\f0\fnil Times New Roman; ) replace 
eststo clear


*Now against placebo

* For Figure OA14

regress supputx4 noappput##(usthreat usthrput uscoopput) if qVAR_H5~=1
margins, dydx(usthreat) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.6 "-.6" -.3 "-.3" 0 "0" .3 ".3" .6 ".6",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("U.S. threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrxappputvsplacebo20240603, replace)

regress supputx4 noappput##(usthreat usthrput uscoopput) if qVAR_H5~=1
margins, dydx(usthrput) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.6 "-.6" -.3 "-.3" 0 "0" .3 ".3" .6 ".6",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("Putin: U.S. threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrputxappputvsplacebo20240603, replace)

regress supputx4 noappput##(usthreat usthrput uscoopput) if qVAR_H5~=1
margins, dydx(uscoopput) at(noappput=0 noappput=1)
marginsplot, yline(0, lcolor(black)) ylabel(-.6 "-.6" -.3 "-.3" 0 "0" .3 ".3" .6 ".6",angle(horizontal) labsize(medium)) xlabel(0 "Pro{&minus}Putin" 1 "Not",labsize(medium)) title("Putin: U.S. cooperation", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffuscoopputxappputvsplacebo20240603, replace)

gr combine FRexpheteffusthrxappputvsplacebo20240603.gph FRexpheteffusthrputxappputvsplacebo20240603.gph FRexpheteffuscoopputxappputvsplacebo20240603.gph, col(3) iscale(1.3) ysize(2) xsize(6.5) title("Effect of primes on Putin support by Putin job approval priors versus IR placebo", size(huge)) graphr(color(white)) saving(FRexpheteffappputvsplacebo20240603, replace)


*Table OA15

eststo clear
regress supputx2 c.appput##(c.usthreat c.usthrput c.uscoopput) if qVAR_H5~=1
eststo: margins, dydx(*)
regress supputx4 c.appput##(c.usthreat c.usthrput c.uscoopput) if qVAR_H5~=1
eststo: margins, dydx(*)

esttab using FRtableOA15.rtf, compress b(%9.2f) se star(* 0.05 ** 0.01) coeflabel(appput "Pro-Putin priors" irplacebo "IR placebo" usthreat "US threat" usthrput "Putin: US threat" uscoopput "Putin: US cooperation" c.appput#c.irplacebo "IR placebo x pro-Putin priors" c.appput#c.usthreat "US threat x pro-Putin priors" c.appput#c.usthrput "Putin US threat x pro-Putin priors" c.appput#c.uscoopput "Putin US cooperation x Putin approval") mtitles("OLS binary DV" "OLS 4-pt scale DV") title("Table X. Average marginal effect of primes on Putin support by pro-Putin priors versus IR placebo group") addnote("") fonttbl(\f0\fnil Times New Roman; ) replace 
eststo clear



*Anti-American priors: no moderating effect

recode qH3 (1=4) (2=3) (3=2) (4=1) (97=.) (99=.), gen(antiusx4)

regress supputx2 c.antiusx4##(irplacebo usthreat usthrput uscoopput)
regress supputx4 c.antiusx4##(irplacebo usthreat usthrput uscoopput)

* Figure OA16

regress supputx4 c.antiusx4##(irplacebo usthreat usthrput uscoopput)
margins, dydx(irplacebo) at(antiusx4=1 antiusx4=2 antiusx4=3 antiusx4=4)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(1 "Not" 4 "Anti-US",labsize(medium)) title("IR placebo", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(.75 4.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffplaceboxantiwest20231228, replace)

regress supputx4 c.antiusx4##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthreat) at(antiusx4=1 antiusx4=2 antiusx4=3 antiusx4=4)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(1 "Not" 4 "Anti-US",labsize(medium)) title("US threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(.75 4.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrxantiwest20231228, replace)

regress supputx4 c.antiusx4##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthrput) at(antiusx4=1 antiusx4=2 antiusx4=3 antiusx4=4)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(1 "Not" 4 "Anti-US",labsize(medium)) title("Putin: US threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(.75 4.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrputxantiwest20231228, replace)

regress supputx4 c.antiusx4##(irplacebo usthreat usthrput uscoopput)
margins, dydx(uscoopput) at(antiusx4=1 antiusx4=2 antiusx4=3 antiusx4=4)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(1 "Not" 4 "Anti-US",labsize(medium)) title("Putin: US cooperation", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(.75 4.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffuscoopputxantiwest20231228, replace)

gr combine FRexpheteffplaceboxantiwest20231228.gph FRexpheteffusthrxantiwest20231228.gph FRexpheteffusthrputxantiwest20231228.gph FRexpheteffuscoopputxantiwest20231228.gph, col(4) iscale(1.3) ysize(2) xsize(6.5) title("Effect of primes on Putin support by anti-Western priors versus control", size(huge)) graphr(color(white)) saving(FRexpheteffantiwest20231228, replace)


*Nationalist priors as measured by party vote intention: No moderating effect

*d. KPRF voters
regress supputx2 votkp19##(irplacebo usthreat usthrput uscoopput)
regress supputx4 votkp19##(irplacebo usthreat usthrput uscoopput)
*d. LDPR voters
regress supputx2 votld19##(irplacebo usthreat usthrput uscoopput)
regress supputx4 votld19##(irplacebo usthreat usthrput uscoopput)

* LDPR or KPRF or Patriots of Russia: GRAPH
regress supputx4 votnatduma19##(irplacebo usthreat usthrput uscoopput)
margins, dydx(irplacebo) at(votnatduma19=0 votnatduma19=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Nationalist",labsize(medium)) title("IR placebo", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffplaceboxnat20231228, replace)

regress supputx4 votnatduma19##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthreat) at(votnatduma19=0 votnatduma19=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Nationalist",labsize(medium)) title("US threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrxnat20231228, replace)

regress supputx4 votnatduma19##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthrput) at(votnatduma19=0 votnatduma19=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Nationalist",labsize(medium)) title("Putin: US threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrputxnat20231228, replace)

regress supputx4 votnatduma19##(irplacebo usthreat usthrput uscoopput)
margins, dydx(uscoopput) at(votnatduma19=0 votnatduma19=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Nationalist",labsize(medium)) title("Putin: US cooperation", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffuscoopputxnat20231228, replace)

gr combine FRexpheteffplaceboxnat20231228.gph FRexpheteffusthrxnat20231228.gph FRexpheteffusthrputxnat20231228.gph FRexpheteffuscoopputxnat20231228.gph, col(4) iscale(1.3) ysize(2) xsize(6.5) title("Effect of primes on Putin support by vote preference" "for nationalist opposition parties versus control", size(huge)) graphr(color(white)) saving(FRexpheteffnat20231228, replace)



*Economic suffering (poverty): no significant interaction effects.

recode qD8 (0=.) (1=1) (2=1) (3=0) (4=0) (5=0) (6=0), gen(poorx2)

regress supputx2 poorx2##(irplacebo usthreat usthrput uscoopput)
regress supputx4 poorx2##(irplacebo usthreat usthrput uscoopput)

**Poverty interactions graph for appendix: Figure OA17

regress supputx4 poorx2##(irplacebo usthreat usthrput uscoopput)
margins, dydx(irplacebo) at(poorx2=0 poorx2=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Poor",labsize(medium)) title("IR placebo", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffplaceboxpoor20231228, replace)

regress supputx4 poorx2##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthreat) at(poorx2=0 poorx2=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Poor",labsize(medium)) title("US threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrxpoor20231228, replace)

regress supputx4 poorx2##(irplacebo usthreat usthrput uscoopput)
margins, dydx(usthrput) at(poorx2=0 poorx2=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Poor",labsize(medium)) title("Putin: US threat", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffusthrputxpoor20231228, replace)

regress supputx4 poorx2##(irplacebo usthreat usthrput uscoopput)
margins, dydx(uscoopput) at(poorx2=0 poorx2=1)
marginsplot, yline(0) ylabel(-.8 "-.8" -.4 "-.4" 0 "0" .4 ".4" .8 ".8",angle(horizontal) labsize(medium)) xlabel(0 "Not" 1 "Poor",labsize(medium)) title("Putin: US cooperation", size(large)) ytitle("Effect size on 1-4 scale") xtitle("") recast(scatter) xscale(range(-.25 1.25)) yscale(range(-0.6 0.6)) graphr(color(white)) saving(FRexpheteffuscoopputxpoor20231228, replace)

gr combine FRexpheteffplaceboxpoor20231228.gph FRexpheteffusthrxpoor20231228.gph FRexpheteffusthrputxpoor20231228.gph FRexpheteffuscoopputxpoor20231228.gph, col(4) iscale(1.3) ysize(2) xsize(6.5) title("Effect of primes on Putin support by poverty versus control", size(huge)) graphr(color(white)) saving(FRexpheteffpoor20231228, replace)


*Balance test: Table OA9

balancetable (mean if qVAR_H5==1) (mean if qVAR_H5==2) (mean if qVAR_H5==3)  (mean if qVAR_H5==4) (mean if qVAR_H5==5)  (diff irplacebo if qVAR_H5!=3 & qVAR_H5!=4 & qVAR_H5!=5) (diff usthreat if qVAR_H5!=2 & qVAR_H5!=4 & qVAR_H5!=5) (diff usthrput if qVAR_H5!=2 & qVAR_H5!=3 & qVAR_H5!=5) (diff uscoopput if qVAR_H5!=2 & qVAR_H5!=3 & qVAR_H5!=4) age female commsize highedx2 using FRbaltab20230820.xls, replace







